package demo07;

import java.util.ArrayList;
import java.util.List;

/*
 * java.util.list正是ArrayList所实现的接口。
 */
public class DemoInterface {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>(); // 左边是接口，右边是实现类，为多态写法
        List<String> result = addNames(list); // 传值为接口List类型，其实际类型为实现类ArrayList类型
                                              // 返回值也是接口List类型，其实际类型也是实现类ArrayList类型
        for (int i = 0; i < result.size(); i++) {
            System.out.println(result.get(i)); // size、get方法都使用的是实现类ArrayList所实现的方法
        }
    }

    // 定义以接口名为参数和返回值的方法
    public static List<String> addNames(List<String> list) {
        list.add("伊利丹"); // 接口中有add的抽象方法，实现类实现了add方法，使用方法优先实现类
        list.add("玛法里奥");
        list.add("泰兰德");
        list.add("艾萨拉");
        return list; // 返回的接口类型其实也是其实现类的类型
    }
}
